1. Field of the Invention
The present invention relates generally to digital answering systems employing non-volatile memory such as flash memory for audio storage, and more particularly to a file management system for extending lifetime for serial interface non-volatile memory for answering systems.
2. Description of the Related Art
In recent years, the trend in digital answering system design has been to employ a non-volatile storage medium such as flash memory for audio message storage. In contrast to random access memory (RAM), non-volatile memory does not lose data stored in memory upon the removal of applied power. Flash memory is desirable as a non-volatile medium in that it draws power at a rate far below that of RAM, and the medium has no mechanical component requiring power. One limitation of flash memory, however, is that it must first erase data from a given physical address before new data can be written to that address.
To date, most (if not all) commercial digital answering systems with flash memory storage have used a parallel data interfaces to write/read data to/from the flash memory chip. A drawback to the parallel interface approach is the increased complexity of the wiring arrangements to carry data and address information to/from and within the flash memory chip. With the trend towards ever increasing miniaturization of memory cell area, the complex wiring necessitated by a parallel interface is a considerable obstacle for further improvement. Also, answering systems with parallel interface flash memories usually delete messages by implementing large block movements, typically about 4 Kb blocks.
Recently, flash memory chips suitable for audio data storage which use a serial interface have become commercially available. One example is the Atmel Corporation""s Serial DataFlash(trademark) memory chip line. Although naturally slower than the parallel interface, the serial interface dramatically simplifies the wiring arrangement of the flash memory and the processor interface. In addition, considerably smaller block sizes, typically 256 bytes, are used to erase data.
One shortcoming of flash memories such as the Atmel DataFlash(trademark) resides in the limited memory cell lifetime. Flash memory chip manufacturers usually specify the maximum number of guaranteed write operations that can be performed to any given cell. At the present time, maximum guaranteed writes of 10,000 to 30,000 are typical for commercially available flash memories. Consequently, the flash memory lifetime is a significant factor in the long term reliability of the answering system.
Therefore, a need exists for a system which allocates memory storage in a non-volatile memory system which increases the systems usable life. A further need exists for improving serial interface memory systems.
In a digital answering system having a non-volatile memory for storing files of audio messages, a memory management method, in accordance with the present invention, includes the step of dedicating a first portion of the memory for the storage of file information, and a second portion for storing message data. The method includes defining a plurality of rotary storage areas within the first memory portion, with the file information being stored within one of the rotary storage areas at any given time. The contents of the one rotary storage area are transferred to another rotary storage area following a predetermined number of write operations to the one storage area.
In alternate methods, the step of dedicating the first memory portion for the storage of answering system information is included. The answering system information may include a count indicating how many times a current rotary storage area has been written to. The step of storing an audio message in rows of the second memory portion along with address information indicating a memory location for a next portion of the message may also be included. The data may be written to and read from the non-volatile memory via a serial data interface. The non-volatile memory preferably includes a flash memory.
A flash memory, in accordance with the present invention, includes a first portion of the memory for the storage of file information, and a second portion for storing message data. A file allocation table is disposed in the first portion of the memory. The file allocation table includes a plurality of rotary storage areas for storing file information such that only one of the rotary storage areas includes stored file information at any given time. Means for transferring the stored file information to another of the rotary storage areas when a predetermined number of operations have been performed is also included.
A serial data interface flash memory, in accordance with the present invention, includes a first portion of the memory for the storage of file information, and a second portion for storing message data. A file allocation table is disposed in the first portion of the memory. The file allocation table includes a plurality of rotary storage areas for storing file information such that only one of the rotary storage areas includes stored file information at any given time. A counter is adapted to count a number of write operations for the one of the rotary storage areas. At least one memory buffer is included for temporarily storing the stored file information to transfer the stored file information to another of the rotary storage areas when a predetermined number of write operations have been performed on the one of the rotary storage areas.
In alternate embodiments, the flash memory may include a directory structure for organizing the first portion and the second portion of the memory. The first portion of the memory preferably includes directory entries. Each directory entry may include a field for storing an address of a first data entry wherein data entries are stored in the second memory portion and form a chain of data entries which comprise a message file. Each directory entry may include an alias identifier for representing a type and availability of data stored in the directory entry. The data entries each include a pointer which points to an address of a next data entry in the chain of data entries which comprise a message file. The file allocation table preferably provides a map of memory usage in the memory. The file allocation table may include an alias identifier for designating usage of a row of memory.
The flash memory is preferably employed in a telephone answering system. The flash memory may include a write protected portion of memory for recording prompts and/or announcements for the answering system. The means for transferring may include a file manager program. The means for transferring may also include at least one memory buffer. The flash memory may further include a file manager program for managing the transfer of the stored file information.
These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.